home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Chans / fax / ps250 / tools / setid.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-18  |  2.9 KB  |  186 lines

  1. /* setid.c: set user id on Panasonic */
  2.  
  3. # ifndef lint
  4. static char Rcsid[] = "@(#)$Header: /xtel/pp/pp-beta/Chans/fax/ps250/tools/RCS/setid.c,v 6.0 1991/12/18 20:08:25 jpo Rel $";
  5. # endif
  6.  
  7. /*
  8.  * $Header: /xtel/pp/pp-beta/Chans/fax/ps250/tools/RCS/setid.c,v 6.0 1991/12/18 20:08:25 jpo Rel $
  9.  *
  10.  * $Log: setid.c,v $
  11.  * Revision 6.0  1991/12/18  20:08:25  jpo
  12.  * Release 6.0
  13.  *
  14.  */
  15.  
  16. #include "util.h"
  17. #include "chan.h"
  18. #include <stdio.h>
  19. #include "../../faxgeneric.h"
  20. #include "../ps250.h"
  21. #include <time.h>
  22. #include <varargs.h>
  23.  
  24. void    adios (), advise ();
  25.  
  26. char    *myname;
  27. static char *localid = 0;
  28.  
  29. extern FaxCtlr    *init_faxctrlr();
  30. extern int    fax_debug;
  31. CHAN    *mychan = NULLCHAN;
  32. int    table_verified = FALSE;
  33.  
  34.  
  35. main (argc, argv)
  36. int    argc;
  37. char    **argv;
  38. {
  39.     extern char    *optarg;
  40.     extern int    optind;
  41.     int    opt;
  42.     FaxCtlr    *faxctl = init_faxctrlr();
  43.     PsModem    *psm = PSM(faxctl);
  44.  
  45.     myname = argv[0];
  46.     while((opt = getopt(argc, argv, "sdf:l:")) != EOF)
  47.         switch (opt) {
  48.             case 'd':
  49.             fax_debug = 1;
  50.             break;
  51.             case 's':
  52.             psm->softcar = TRUE;
  53.             break;
  54.             case 'f':
  55.             sprintf(psm->devName, "%s", optarg);
  56.             break;
  57.             case 'l':
  58.             localid = optarg;
  59.             break;
  60.             default:
  61.             adios (NULLCP, "Usage: %s [-s] [-d] [-f device] [-l localid]", myname);
  62.             break;
  63.         }
  64.     argc -= optind;
  65.     argv += optind;
  66.  
  67.     setid (faxctl);
  68.     exit (0);
  69. }
  70.  
  71. setid (faxctl)
  72. FaxCtlr    *faxctl;
  73. {
  74.     Idset    id;
  75.     Stat1    stat1;
  76.     Stat2    s2;
  77.     int    fd;
  78.     time_t    now;
  79.     PsModem    *psm = PSM(faxctl);
  80.  
  81.     if (faxctl->open != NULLIFP
  82.         && (*faxctl->open) (faxctl) != OK) {
  83.         fprintf(stderr,
  84.             "fax open failed ['%s']",
  85.             faxctl->errBuf);
  86.         exit(1);
  87.     }
  88.  
  89.     (void) time (&now);
  90.     timet2fax (now, id.clock);
  91.     if (localid)
  92.         (void) sprintf (id.local, "%20s", localid);
  93.     else
  94.         id.local[0] = 0;
  95.  
  96.     if (fax_idset (psm->fd, &id) == NOTOK)
  97.         adios ("fax_idset", "failed");
  98.  
  99.     if (fax_getstat1 (psm->fd, &stat1) == NOTOK)
  100.         adios ("fax_getstat1", "failed");
  101. /*    fax_pstat1 (&stat1);*/
  102.  
  103.     if (fax_sendenq2 (psm->fd) == NOTOK)
  104.         adios ("send enq2", "failed");
  105.  
  106.     if (fax_getstat2 (psm->fd, &s2) == NOTOK)
  107.         adios ("read packet", "failed");
  108.  
  109.     printf ("Fax clock: %s\n", s2.clock);
  110.     printf ("Fax local ID: %s\n", s2.local);
  111.  
  112.     if (faxctl->close !=  NULLIFP)
  113.         (*faxctl->close) (faxctl);
  114.  
  115. }
  116.         
  117.  
  118. #ifndef    lint
  119. void    _advise ();
  120.  
  121.  
  122. void    adios (va_alist)
  123. va_dcl
  124. {
  125.     va_list ap;
  126.  
  127.     va_start (ap);
  128.  
  129.     _advise (ap);
  130.  
  131.     va_end (ap);
  132.  
  133.     _exit (1);
  134. }
  135. #else
  136. /* VARARGS */
  137.  
  138. void    adios (what, fmt)
  139. char   *what,
  140.        *fmt;
  141. {
  142.     adios (what, fmt);
  143. }
  144. #endif
  145.  
  146.  
  147. #ifndef    lint
  148. void    advise (va_alist)
  149. va_dcl
  150. {
  151.     va_list ap;
  152.  
  153.     va_start (ap);
  154.  
  155.     _advise (ap);
  156.  
  157.     va_end (ap);
  158. }
  159.  
  160.  
  161. static void  _advise (ap)
  162. va_list    ap;
  163. {
  164.     char    buffer[BUFSIZ];
  165.  
  166.     asprintf (buffer, ap);
  167.  
  168.     (void) fflush (stdout);
  169.  
  170.     fprintf (stderr, "%s: ", myname);
  171.     (void) fputs (buffer, stderr);
  172.     (void) fputc ('\n', stderr);
  173.  
  174.     (void) fflush (stderr);
  175. }
  176. #else
  177. /* VARARGS */
  178.  
  179. void    advise (what, fmt)
  180. char   *what,
  181.        *fmt;
  182. {
  183.     advise (what, fmt);
  184. }
  185. #endif
  186.